package com.ahp.dao.impl;

import java.io.Serializable;

import javax.servlet.http.HttpServletRequest;

import org.hibernate.Query;

import com.ahp.bean.Module;
import com.ahp.bean.User;
import com.ahp.dao.ModuleDao;
import com.ahp.util.PageList;
import com.ahp.util.Pages;

public class ModuleDaoImpl extends GenericDAOImpl<Module, Integer> implements ModuleDao {

	public ModuleDaoImpl() {
		super(Module.class);
	}
	
	public ModuleDaoImpl(Class<Module> clazz) {
		super(clazz);
	}

	public Module get(Class<Module> entityClass, Serializable id) {
		return (Module) this.getHibernateTemplate().get(entityClass, id);
	}

	public Module load(Class<Module> entityClass, Serializable id) {
		return (Module) this.getHibernateTemplate().load(entityClass, id);
	}
	
	public PageList moduleList(User user,Pages pages) {
		StringBuffer sql = new StringBuffer();
		if(User.MANAGER_TYPE.equals(user.getType())){
			sql.append("from Module");
		}else if(User.USER_TYPE.equals(user.getType())){
			sql.append("from Module m where m.user.id=");
			sql.append(user.getId());
			sql.append(" or m.type='default_module'");
		}
		Query query = getSession().createQuery(sql.toString());
		return pages.pageList(query, pages);
	}
	
	public boolean addModule(Module mod){
		try{
			this.getHibernateTemplate().save(mod);
			return true;
		}catch (Exception e) {
			e.printStackTrace();
			return false;
		}
	}
	
}
